package com.xinfu.newproject.model;

import com.xinfu.newproject.bean.certifition.AddRoomBean;
import com.xinfu.newproject.bean.certifition.AddRoomBody;
import com.xinfu.newproject.bean.certifition.QeuryRoomBean;
import com.xinfu.newproject.bean.certifition.QeuryRoomBody;
import com.xinfu.newproject.bean.certifition.ResidentCertificationBean;
import com.xinfu.newproject.bean.certifition.ResidentCertificationBody;
import com.xinfu.newproject.bean.certifition.UntyingBean;
import com.xinfu.newproject.bean.certifition.UntyingBody;
import com.xinfu.newproject.bean.community.ExistCommunityBean;
import com.xinfu.newproject.bean.community.ExistCommunityBody;
import com.xinfu.newproject.bean.community.GetCommunityBean;
import com.xinfu.newproject.bean.community.GetCommunityBody;
import com.xinfu.newproject.bean.community.InsertCommunityBean;
import com.xinfu.newproject.bean.community.InsertCommunityBody;
import com.xinfu.newproject.bean.complaint.bean.ComplaintDetailBean;
import com.xinfu.newproject.bean.complaint.bean.ComplaintEvaluateBean;
import com.xinfu.newproject.bean.complaint.bean.ComplaintRecordBean;
import com.xinfu.newproject.bean.complaint.bean.SubmitComplaintBean;
import com.xinfu.newproject.bean.complaint.body.ComplaintDetailBody;
import com.xinfu.newproject.bean.complaint.body.ComplaintEvaluateBody;
import com.xinfu.newproject.bean.complaint.body.ComplaintRecordBody;
import com.xinfu.newproject.bean.complaint.body.SubComplaintBody;
import com.xinfu.newproject.bean.home.bean.GetAppIconBean;
import com.xinfu.newproject.bean.home.body.GetAppIconBody;
import com.xinfu.newproject.bean.login.LoginBean;
import com.xinfu.newproject.bean.login.LoginBody;
import com.xinfu.newproject.bean.login.PhoneBean;
import com.xinfu.newproject.bean.login.PhoneBody;
import com.xinfu.newproject.bean.login.RegisterBody;
import com.xinfu.newproject.bean.login.SMSCodeBean;
import com.xinfu.newproject.bean.login.SMSCodeBody;
import com.xinfu.newproject.bean.matter_repair.AddRepairBean;
import com.xinfu.newproject.bean.matter_repair.AddRepairBody;
import com.xinfu.newproject.bean.matter_repair.QueryRepairPartsBean;
import com.xinfu.newproject.bean.matter_repair.QueryRepairPartsBody;
import com.xinfu.newproject.bean.matter_repair.RepairDetailBean;
import com.xinfu.newproject.bean.matter_repair.RepairDetailBody;
import com.xinfu.newproject.bean.matter_repair.RepairRecordBean;
import com.xinfu.newproject.bean.matter_repair.RepairRecordBody;
import com.xinfu.newproject.bean.matter_repair.bean.RepairCountBean;
import com.xinfu.newproject.bean.matter_repair.bean.RepairEvaluateBean;
import com.xinfu.newproject.bean.matter_repair.body.RepairCountBody;
import com.xinfu.newproject.bean.matter_repair.body.RepairEvaluateBody;
import com.xinfu.newproject.bean.meter.bean.AddUserMeterBean;
import com.xinfu.newproject.bean.meter.bean.CheckMeterCodeBean;
import com.xinfu.newproject.bean.meter.bean.MeterListBean;
import com.xinfu.newproject.bean.meter.body.AddUserMeterBody;
import com.xinfu.newproject.bean.meter.body.CheckMeterCodeBody;
import com.xinfu.newproject.bean.meter.body.MeterListBody;
import com.xinfu.newproject.bean.park_bean.bean.AddMonthCarBean;
import com.xinfu.newproject.bean.park_bean.bean.CheckMonthParkBean;
import com.xinfu.newproject.bean.park_bean.bean.FeeListBean;
import com.xinfu.newproject.bean.park_bean.bean.GetMonthCarListBean;
import com.xinfu.newproject.bean.park_bean.bean.GetParkingBean;
import com.xinfu.newproject.bean.park_bean.bean.MonthCarPayBean;
import com.xinfu.newproject.bean.park_bean.bean.PaymentsBean;
import com.xinfu.newproject.bean.park_bean.bean.TempPayBean;
import com.xinfu.newproject.bean.park_bean.body.AddMonthCarBody;
import com.xinfu.newproject.bean.park_bean.body.AppIntoPayBody;
import com.xinfu.newproject.bean.park_bean.body.CheckMonthParkBody;
import com.xinfu.newproject.bean.park_bean.body.FeeListBody;
import com.xinfu.newproject.bean.park_bean.body.GetMonthCarListBody;
import com.xinfu.newproject.bean.park_bean.body.GetParkingBody;
import com.xinfu.newproject.bean.park_bean.body.PaymentsBody;
import com.xinfu.newproject.bean.park_bean.body.TempPayBody;
import com.xinfu.newproject.bean.pay.PayBean;
import com.xinfu.newproject.bean.pay.PayBody;
import com.xinfu.newproject.bean.pay.bean.PayCostBean;
import com.xinfu.newproject.bean.pay.body.PayCostBody;
import com.xinfu.newproject.bean.pay.body.PayRecordsBody;
import com.xinfu.newproject.bean.paycost.bean.ComputeParkingBean;
import com.xinfu.newproject.bean.paycost.bean.GetBillByTypeBean;
import com.xinfu.newproject.bean.paycost.bean.QueryTypesBean;
import com.xinfu.newproject.bean.paycost.body.ComputeParkingBody;
import com.xinfu.newproject.bean.paycost.body.GetBillByTypeBody;
import com.xinfu.newproject.bean.paycost.body.QueryTypesBody;
import com.xinfu.newproject.bean.person.bean.PersonBean;
import com.xinfu.newproject.bean.person.body.PersonBody;
import com.xinfu.newproject.bean.up_image.UpImageBean;
import com.xinfu.newproject.bean.up_image.UpImageBody;
import com.xinfu.newproject.callback.MyCallBack;

public class IModel {
    /**
     * 登录时判断手机号码是否已注册
     */
    public interface IPhoneModel {
        void phone(PhoneBody phoneBean, MyCallBack<PhoneBean> callBack);
    }

    /**
     * 注册账号
     */
    public interface IRegisterModel {
        void register(RegisterBody registerBody, MyCallBack<LoginBean> callBack);
    }

    /**
     * 获取验证码
     */
    public interface ISMSCodeModel {
        void getSMSCode(SMSCodeBody registerBody, MyCallBack<SMSCodeBean> callBack);
    }

    /**
     * 登录
     */
    public interface ILoginModel {
        void login(LoginBody registerBody, MyCallBack<LoginBean> callBack);
    }

    /**
     * 首页内容
     */
    public interface IAppIconModel {
        void appIcon(GetAppIconBody getAppIconBody, MyCallBack<GetAppIconBean> callBack);
    }

    /**
     * 个人信息
     */
    public interface IPersonModel {
        void upPerson(PersonBody personBody, MyCallBack<PersonBean> callBack);
    }

    /**
     * 获取小区
     */
    public interface IGetCommunityModel {
        void getCommunity(GetCommunityBody getCommunityBody, MyCallBack<GetCommunityBean> callBack);
    }

    /**
     * 新增小区
     */
    public interface IInsertCommunityModel {
        void insertCommunity(InsertCommunityBody insertCommunityBody, MyCallBack<InsertCommunityBean> callBack);
    }

    /**
     * 获取房间号
     */
    public interface IQeuryRoomModel {
        void qeuryRoom(QeuryRoomBody qeuryRoomBody, MyCallBack<QeuryRoomBean> callBack);
    }

    /**
     * 解除房产
     */
    public interface IUntyingModel {
        void untying(UntyingBody untyingBody, MyCallBack<UntyingBean> callBack);
    }

    /**
     * 添加房产
     */
    public interface IAddRoomModel {
        void addRoom(AddRoomBody addRoomBody, MyCallBack<AddRoomBean> callBack);
    }

    /**
     * 查询已有房产
     */
    public interface IExistCommunityModel {
        void existCommunity(ExistCommunityBody existCommunityBody, MyCallBack<ExistCommunityBean> callBack);
    }

    /**
     * 查询已绑定房产
     */
    public interface IQueryPropertyModel {
        void queryProperty(ResidentCertificationBody residentCertificationBody, MyCallBack<ResidentCertificationBean> callBack);
    }

    /**
     * 获取报修部位
     */
    public interface IQueryRepairPartsModel {
        void queryRepairParts(QueryRepairPartsBody queryRepairPartsBody, MyCallBack<QueryRepairPartsBean> callBack);
    }

    /**
     * 查询报修记录
     */
    public interface IRepairRecordModel {
        void repairRecord(RepairRecordBody repairRecordBody, MyCallBack<RepairRecordBean> callBack);//报修记录列表

        void repairDetail(RepairDetailBody repairDetailBody, MyCallBack<RepairDetailBean> callBack);//报修记录详情

        void repairCount(RepairCountBody repairCountBody, MyCallBack<RepairCountBean> callBack);//报修记录数量
    }

    /**
     * 提交报修
     */
    public interface ISubmitRepairModel {
        void submitRepair(AddRepairBody addRepairBody, MyCallBack<AddRepairBean> callBack);

        void repairEvaluate(RepairEvaluateBody repairEvaluateBody, MyCallBack<RepairEvaluateBean> callBack);
    }
/***************************************************************************************************************************************************************************************************/
    /**
     * 上传图片
     */
    public interface IUpImageModel {
        void upImage(UpImageBody upImageBody, MyCallBack<UpImageBean> callBack);
    }

    /**
     * 支付
     */
    public interface IPayModel {
        void pay(PayBody payBody, MyCallBack<PayBean> callBack);//报修支付

        void payCost(PayCostBody payCostBody, MyCallBack<PayCostBean> callBack);//物业支付
    }
/********************************************************************************************************************************************************************************************************/
    /**
     * 停车场
     */
    public interface IParkingModel {
        void getParking(GetParkingBody getParkingBody, MyCallBack<GetParkingBean> callBack);//查询停车场

        void feeList(FeeListBody feeListBody, MyCallBack<FeeListBean> callBack);//月卡车续费记录

        void checkMonthParkCar(CheckMonthParkBody checkMonthParkBody, MyCallBack<CheckMonthParkBean> callBack);//根据车场id和车牌号检查车辆信息

        void addMonthCar(AddMonthCarBody addMonthCarBody, MyCallBack<AddMonthCarBean> callBack);//添加月卡车

        void getMonthCarList(GetMonthCarListBody getMonthCarListBody, MyCallBack<GetMonthCarListBean> callBack);//根据用户id查询月卡车列表

        void payments(PaymentsBody paymentsBody, MyCallBack<PaymentsBean> callBack);//根据用户id查询月卡车列表

        void appIntoPay(AppIntoPayBody appIntoPayBody, MyCallBack<MonthCarPayBean> callBack);//停车缴费支付

        void ComputeParkingFee(ComputeParkingBody computeParkingBody, MyCallBack<ComputeParkingBean> callBack);//查询临停车

        void tempPay(TempPayBody tempPayBody, MyCallBack<TempPayBean> callBack);//临停车支付
    }
    /********************************************************************************************************************************************************************************************************/
    /**
     * 投诉
     */
    public interface IComplaintModel {
        void submitComplaint(SubComplaintBody subComplaintBody, MyCallBack<SubmitComplaintBean> callBack);//提交投诉

        void complaintRecord(ComplaintRecordBody complaintRecordBody, MyCallBack<ComplaintRecordBean> callBack);//投诉记录

        void complaintDetail(ComplaintDetailBody complaintDetailBody, MyCallBack<ComplaintDetailBean> callBack);//投诉详情

        void complaintEvaluate(ComplaintEvaluateBody complaintEvaluateBody, MyCallBack<ComplaintEvaluateBean> callBack);//投诉评价
    }
/********************************************************************************************************************************************************************************************************/
    /**
     * 缴费（物业，车位，报修）
     */
    public interface IPayCostModel {
        void queryTypes(QueryTypesBody queryTypesBody, MyCallBack<QueryTypesBean> callBack);//查询对应的缴费类型

        void getBillsByType(GetBillByTypeBody getBillByTypeBody, MyCallBack<GetBillByTypeBean> callBack);//查询对应的缴费类型下的对应账单

        void payRecords(PayRecordsBody payRecordsBody, MyCallBack<String> callBack);//查询缴费记录
    }

    /********************************************************************************************************************************************************************************************************/
    /**
     * 水电表
     */
    public interface IMeterModel {
        void addUserMeter(AddUserMeterBody addUserMeterBody, MyCallBack<AddUserMeterBean> callBack);//手动添加水电表

        void checkMeterCode(CheckMeterCodeBody checkMeterCodeBody, MyCallBack<CheckMeterCodeBean> callBack);//校验meterCode

        void meterList(MeterListBody meterListBody, MyCallBack<MeterListBean> callBack);//查询所有水电表

        void meterPay(MeterListBody meterListBody, MyCallBack<MeterListBean> callBack);//水电表支付
    }
}
